package com.rmy.queue.mapper;

import java.util.List;
import com.rmy.queue.domain.QmsQueueList;

/**
 * 排队队列Mapper接口
 *
 * @author rmy
 * @date 2022-09-29
 */
public interface QmsQueueListMapper
{
    /**
     * 查询排队队列
     *
     * @param serialNo 排队队列主键
     * @return 排队队列
     */
    public QmsQueueList selectQmsQueueListBySerialNo(String serialNo);

    /**
     * 查询排队队列列表
     *
     * @param qmsQueueList 排队队列
     * @return 排队队列集合
     */
    public List<QmsQueueList> selectQmsQueueListList(QmsQueueList qmsQueueList);

    /**
     * 新增排队队列
     *
     * @param qmsQueueList 排队队列
     * @return 结果
     */
    public int insertQmsQueueList(QmsQueueList qmsQueueList);

    /**
     * 修改排队队列
     *
     * @param qmsQueueList 排队队列
     * @return 结果
     */
    public int updateQmsQueueList(QmsQueueList qmsQueueList);

    /**
     * 删除排队队列
     *
     * @param serialNo 排队队列主键
     * @return 结果
     */
    public int deleteQmsQueueListBySerialNo(String serialNo);

    /**
     * 批量删除排队队列
     *
     * @param serialNos 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQmsQueueListBySerialNos(String[] serialNos);
    /**
     * 根据排队业务和机构查询上次生成的排队信息
     *
     * @param qmsQueueList 业务ID
     * @return 结果 上次排队号码
     */
    public String selectLastQueueInfo(QmsQueueList qmsQueueList);

    /**
     * 根据窗口ID查询上次叫号信息
     *
     * @param windowId 窗口ID
     * @return 结果 上次叫号信息
     */
    public QmsQueueList selectLastCallInfo(Long windowId);

    /**
     * 根据窗口ID查询转移的排队信息
     *
     * @param qmsQueueList 窗口ID
     * @return 结果 上次叫号信息
     */
    public List<QmsQueueList> selectTransferQueue(QmsQueueList qmsQueueList);
    /**
     * 根据窗口ID查询预约排队信息
     *
     * @param qmsQueueList 窗口ID
     * @return 结果 上次叫号信息
     */
        public List<QmsQueueList> selectPreQueue(QmsQueueList qmsQueueList);

    /**
     * 根据窗口ID查询普通排队信息
     *
     * @param qmsQueueList 窗口ID
     * @return 结果 上次叫号信息
     */
    public List<QmsQueueList> selectCommonQueue(QmsQueueList qmsQueueList);

    /**
     * 查询正在叫号的排队信息
     *
     * @param qmsQueueList 窗口ID
     * @return 结果
     */
    public List<QmsQueueList> selectAvaliableReCall(QmsQueueList qmsQueueList);

    /**
     * 根据排队号码查询当天排队信息
     *
     * @param qmsQueueList
     * @return 结果
     */
    public QmsQueueList selectQmsQueueByQueueNo(QmsQueueList qmsQueueList);

    /**
     * 根据机构号查询当前队列
     * @param orgNo
     * @return
     */
    public List<QmsQueueList> selectQueueListByOrgNo(String orgNo);

    /**
     * 根据机构号查询已叫号列表
     * @param orgNo
     * @return
     */
    public List<QmsQueueList> selectCalledListByOrgNo(String orgNo);

    /**
     *
     * @param qmsQueueList
     * @return
     */
    public int checkQueueNumberRepeat(QmsQueueList qmsQueueList);

    /**
     * 根据排队号码 机构号查询当天排队信息
     * @param qmsQueueList
     * @return
     */
    public List<QmsQueueList> selectTodayQueue(QmsQueueList qmsQueueList);
}
